package cn.kent.heima.base.methodArea;

import java.util.ArrayList;
import java.util.List;

/**
 * 演示StringTable的位置
 * 在jdk1.8下设置 -Xmx10m -XX:-UseGCOverheadLimit  --> 146854 java.lang.OutOfMemoryError: Java heap space
 *      如果只设置了-Xmx10m --> java.lang.OutOfMemoryError: GC overhead limit exceeded
     *          原因: jvm官方文档:如果总时间花了超过98%时间在垃圾回收上,但是只有小于2%的堆内存被回收了,就会报这个错. - 默认情况下
 *                  -XX:-UseGCOverheadLimit 可以把这个开关关闭
 * 在jdk1.6下设置 -XX:MaxPermSize=10m
 */
@SuppressWarnings("all")
public class Demo_10 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        int i = 0;
        try {
            for (int j = 0; j < 260000; j++) {
                list.add(String.valueOf(i).intern());
                i++;
            }
        } catch (Throwable e) {
            e.printStackTrace();
        } finally {
            System.out.println(i);
        }
    }
}
